let userModules = require('../model/userModules');
let SALTOBJ=require('../config/index');
let md5=require('blueimp-md5');
module.exports = {
    // 处理用户注册提交的数据
    handlePost: (req, res) => {
        let newUser = req.body;
        console.log(newUser);

        // 在正式添加用户之前先验证该用户是否注册过了
        userModules.getUserName(newUser.username, (err, data) => {
            // 这是数据库错误
            if (err) return res.json({
                status: 0,
                msg: '数据库查询失败'
            })
            // 这是查询到数据，说明该用户已存在，要返回错误信息
            if (data.length !== 0) return res.json({
                status: 0,
                msg: '该用户名已被注册!'
            })
            // 在插入数据之前，先将密码加密
            newUser.password=md5(newUser.password,SALTOBJ.SALT);
            // 引入modul处理函数,添加用户注册的信息
            userModules.addUser(newUser, (err, data) => {
                if (err) return res.json({
                    status: 0,
                    msg: '注册失败！'
                })
                if (data.affectedRows !== 0) {
                    res.json({
                        status: 1,
                        msg: '注册成功!'
                    });
                    // console.log(data);
                }
            })
        })
    },
    // 处理登录页面的数据
    handleLogin:(req,res)=>{
        let userObj=req.body;
        // 在查询之前先将密码加密
        userObj.password=md5(userObj.password,SALTOBJ.SALT);
        userModules.userLogin(userObj,(err,data)=>{
            if(err) return res.json({status:0,msg:'查询数据库错误'})
            if(data.length==0) return res.json({status:0,msg:'该用户未注册或者密码错误'})
            // 将登录成功的状态保存到req.session中
            req.session.islogin=true;
            // 将登录人的信息保存到req.session中
            req.session.user=data[0];
            res.json({status:1,msg:'登录成功'})
        })
    },

    // 处理注销登录
    handleLogout:(req,res)=>{
        req.session.destroy((err) => {
            if(err) throw err;
            res.redirect('/');
          });
    }
}